/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.java;

import BLL.PropietarioBLL;
import Entidades.Propietario;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Scanner;

public class Menu {

    Propietario _propietario = new Propietario();
    Scanner _scanner = new Scanner(System.in);

    public void lanzarmenu(ArrayList list) throws ClassNotFoundException, SQLException {

        PropietarioBLL _propietarioBLL = new PropietarioBLL();

        do {
            try {
                System.out.printf("\nINTRODUCE UNA DE LAS SIGUIENTES OPCIONES:\n"
                        + "=========================================\n"
                        + "(1).......... Introducir Registros\n"
                        + "(2).......... Consultar Registros\n"
                        + "(3).......... Borrar Registros\n"
                        + "(4).......... Actualizar Registros\n"
                        + "(5).......... Crear la tabla clientes\n"
                        + "(6).......... Borrar la tabla clientes\n"
                        + "(7).......... Salir\n\n");

                System.out.printf("NUMERO: ");
                _propietario.setOpcion(_scanner.nextInt());

                switch (_propietario.getOpcion()) {
                    case 1:
                        insertar();
                        _propietarioBLL.insertar(_propietario, null);
                        System.out.println("\nEL INSERTS HA SIDO INTRODUCIDOS EN LA TABLA CLIENTES ");
                        break;
                    case 2:
                        select(list);
                        _propietarioBLL.select(_propietario, null);
                        break;
                    case 3:
                        delete();
                        _propietarioBLL.delete(_propietario, null);
                        System.out.println("\nLAS FILAS HAN SIDO BORRADAS");
                        break;
                    case 4:
                        actualizar();
                        _propietarioBLL.actualizar(_propietario, null);
                        System.out.println("\nLOS DATOS HAN SIDO ACTUALIZADOS EN LA TABLA CLIENTES ");
                        break;
                    case 5:
                        crearTabla();
                        _propietarioBLL.tabla(_propietario, null);
                        System.out.println("LA TABLA HA SIDO CREADA");
                        break;
                    case 6:
                        borrarTabla();
                        _propietarioBLL.tabla(_propietario, null);
                        System.out.println("LA TABLA HA SIDO BORRADA");
                        break;
                    default:
                        System.out.println("ACABA DE SALIR DEL PROGRAMA");
                }

            } catch (SQLException e) {
                System.out.println("\nError en el programa");
            }

        } while (_propietario.getOpcion() != 7);
    }

    public void insertar() throws SQLException, ClassNotFoundException {

        System.out.printf("Introduce el DNI: ");
        _propietario.setDni(_scanner.next());

        System.out.printf("Introduce el Nombre: ");
        _propietario.setNombre(_scanner.next());

        System.out.printf("Introduce el primer apellido: ");
        _propietario.setApellidos(_scanner.next());
        System.out.printf("Introduce el segundo apellido: ");
        _propietario.setApellidos(_propietario.getApellidos() + " " + _scanner.next());

        System.out.printf("Introduce el Fecha: ");
        _propietario.setFecha(_scanner.next());

        System.out.printf("Introduce el Saldo: ");
        _propietario.setSaldo(_scanner.nextInt());

    }

    public void delete() throws ClassNotFoundException, SQLException {

        System.out.printf("Introduce el Nombre: ");
        _propietario.setNombre(_scanner.next());
    }

    public void actualizar() throws ClassNotFoundException, SQLException {


        System.out.printf("Introduce el nombre que quiere introducir: ");
        _propietario.setNombre(_scanner.next());

        System.out.printf("Introduce el primer apellido: ");
        _propietario.setApellidos(_scanner.next());
        System.out.printf("Introduce el segundo apellido: ");
        _propietario.setApellidos(_propietario.getApellidos() + " " + _scanner.next());

        System.out.printf("Introduce el nombre que quiere modificar: ");
        _propietario.setNombre2(_scanner.next());

    }

    public void crearTabla() throws ClassNotFoundException, SQLException {

        _propietario.setTabla("CREATE TABLE CLIENTES "
                + "(DNI VARCHAR2(10 BYTE) NOT NULL ENABLE, "
                + "NOMBRE VARCHAR2(40 BYTE), "
                + "APELLIDOS VARCHAR2(40 BYTE), "
                + "FECHA_NACIMIENTO DATE, "
                + "PRECIO NUMBER(20,0), "
                + "PRIMARY KEY (DNI))");
    }

    public void borrarTabla() throws ClassNotFoundException, SQLException {

        _propietario.setTabla("Drop table Clientes");

    }

    private void select(ArrayList list) throws SQLException, ClassNotFoundException {

        PropietarioBLL _propietarioBLL = new PropietarioBLL();
        list = _propietarioBLL.select(_propietario, null);

        System.out.printf("%-10.10s %-20.20s %-25.25s %-20.20s %-10.10s\n",
                "NIF       ", "Nombre              ", "Apellidos                     ",
                "Fecha de nacimiento ", "Saldo     ");
        
        System.out.printf("%-90.90s\n", "==========================================================================================");

        
        for (int i = 0; i < (list.size() - 4); i = i + 5) {
            System.out.printf("%-10.10s %-20.20s %-25.25s %-20.20s %-10.10s\n",
                    list.get(i) + " ", list.get(i + 1) + " ", list.get(i + 2) 
                    + " ", list.get(i + 3) + " ", list.get(i + 4) + " ");
        }


//        System.out.printf("%-10.10s %-20.20s %-25.25s %-20.20s %-10.10s\n",
//                "NIF       ", "Nombre              ", "Apellidos                     ",
//                "Fecha de nacimiento ", "Saldo     ");

//        while (rs.next()) {
//            System.out.printf("%-10.10s %-20.20s %-25.25s %-20.20s %-10.10s\n",
//                    rs.getString(1), rs.getString(2), rs.getString(3),
//                    rs.getString(4), rs.getString(5));

    }
}
